package com.ycxh.module.other;

import com.alibaba.fastjson.JSONObject;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * 其他控制器
 **/
@Slf4j
@RestController
@RequestMapping("/other")
public class OtherController {

    /**
     * 获取巨量返回数据 json格式
     **/
    @GetMapping("/getBigResponse")
    public Map<String, Object> getBigResponse() {
        return genJsonString();
    }

    /**
     * 生成json字符串
     */
    private static Map<String, Object> genJsonString() {
        Map<String, Object> map = new HashMap<>();
        List<JSONObject> depts = new ArrayList();
        for (int i = 0; i < 3000; i++) {
            JSONObject jsonObject = new JSONObject();
            jsonObject.put("id", i);
            jsonObject.put("name", "部门名称_" + i);
            jsonObject.put("deptCode", "部门编码_" + i);
            jsonObject.put("deptName", "部门名称_" + i);
            jsonObject.put("parentDeptCode", "父部门编码_" + i);
            jsonObject.put("deptFullName", "部门全称\\部门全称\\部门全称_" + i);
            depts.add(jsonObject);
        }
        map.put("depts", depts);

        List<JSONObject> users = new ArrayList();
        for (int i = 0; i < 200000; i++) {
            JSONObject jsonObject = new JSONObject();
            jsonObject.put("id", i);
            jsonObject.put("name", "姓名_" + i);
            jsonObject.put("gh", "工号_" + i);
            jsonObject.put("sex", "性别_" + i);
            jsonObject.put("phone", "电话电话电话_" + i);
            jsonObject.put("headImage", "头像_" + i);
            jsonObject.put("deptCode", "部门编码_" + i);
            jsonObject.put("deptName", "部门名称_" + i);
            jsonObject.put("deptFullName", "部门全称\\部门全称\\部门全称_" + i);
            jsonObject.put("email", "邮箱_" + i);
            jsonObject.put("address", "地址地址地址地址地址_" + i);
            users.add(jsonObject);
        }
        map.put("users", users);
        return map;
    }

}
